<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 关于变量声明

    // var a = 10;
    // b = 20;
    // console.log(a,b);


    // 关于eval()函数  => 接收一个字符串,将字符串中的内容作为JS语句执行
    // eval("alert(11111)"); 

    // debugger;
    // eval("var a = 10;var b=20; var c = a + b;console.log(a,b,c)");
    // console.log(a,b,c);


    // 关于函数多参数重复

    // function sum(a, b, b) {
    //     // a = 1;
    //     // b = 2;
    //     // b = 3;
    //     return a + b;
    // }

    // var result = sum(1, 2, 3);
    // console.log(result);


    // (2) 关于this指向


    // function fn(){
    //     console.log(this);
    // }

    // fn();  // window.fn();
    // console.log(window);  // 全局对象 => 当前浏览器中的全局变量和方法(window可以省略)
    


    var zhang = {};
    Object.defineProperties(zhang, {
        name: {
            value: "张三",  // 新增属性的属性值
            writable: false, // 属性是否可以被修改 (对应键名修改健值) => 默认false
            enumerable: false, // 属性是否可以枚举(循环遍历)  => 默认false
            configurable: false,  // 属性是否可以被重新配置或删除  => 默认false  
        },
        age: {
            value: 18,  // 新增属性的属性值
            writable: false, // 属性是否可以被修改 (对应键名修改健值) => 默认false
            enumerable: false, // 属性是否可以枚举(循环遍历)  => 默认false
            configurable: false,  // 属性是否可以被重新配置或删除  => 默认false  
        },
        height: {
            value: "177cm",  // 新增属性的属性值
            writable: false, // 属性是否可以被修改 (对应键名修改健值) => 默认false
            enumerable: false, // 属性是否可以枚举(循环遍历)  => 默认false
            configurable: false,  // 属性是否可以被重新配置或删除  => 默认false  
        },
        weight: {
            value: "65kg",  // 新增属性的属性值
            writable: false, // 属性是否可以被修改 (对应键名修改健值) => 默认false
            enumerable: false, // 属性是否可以枚举(循环遍历)  => 默认false
            configurable: false,  // 属性是否可以被重新配置或删除  => 默认false  
        }
    })

    console.log(delete zhang.name);







</script>

</html>